Resource management systems and methods track usage of resources over time. Resources can include, without limitation, bandwidth, seats (train, plane, etc.), appointments, and the like. For illustration purposes, the foregoing descriptions focus on bandwidth as the resources being reserved. Where a bandwidth allocation is made for a defined period—such as with Software Defined Networking (SDN)—the consumption of a resource ceases to be a simple linear problem. By adding the second dimension of time to bandwidth allocations, this renders the problem of identifying booked consumption at any given time non-trivial. To perform the calculation, it is necessary to analyze every booking of the resource, to establish the bounds of the booking, and thus whether that booking must be included in the total consumption for the given time point. Whilst this process clearly scales linearly with the number of bookings of the resource, what is less immediately obvious is that this extends to all bookings known to the system for the resource, not just those simultaneously active at the point of reference. In the scenario of a shared SDN port, the very scenario for which this capability is required, the presence of a long ‘order book’ into the future (plus any historic log, for billing, regulatory or other purposes) both contribute to seriously degrade the performance of the functionality. This has the effect of compromising the ability to service customer demands, and constraining scalability.
The process of tracking resource where reservations start and stop with varying times and with overlaps (to the extent permitted by available bandwidth) is computationally expensive, and does not scale well with increased use of the system.